package com.umpay.dto.merBusi.req.split;

import java.util.List;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;

import com.umpay.annotation.Pattern;
import com.umpay.dto.merBusi.req.CommonBusiReq;

/**
 * 
 * @ClassName: TransSplitBusiReq  
 * @Description: 分账业务处理请求类 
 * @author liuhaidong  
 * @date Jan 25, 2018
 */
public class TransSplitBusiReq extends CommonBusiReq {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@NotNull(message = "商户订单号不能为空")		
	@Pattern(message = "商户订单号格式不正确")
	private String orderId;	//变长32	商户订单号
	
	@NotNull(message = "商户订单日期不能为空")		
	@Pattern(message = "商户订单日期格式不正确")
	private String orderDate;	//定长8	商户订单日期
	
	@NotNull(message = "原消费商户订单号不能为空")		
	@Pattern(message = "原消费商户订单号格式不正确")
	private String oriOrderId;	//变长32	原消费订单号
	
	@NotNull(message = "原消费商户订单日期不能为空")		
	@Pattern(message = "原消费商户订单日期格式不正确")
	private String oriOrderDate;	//定长8	原消费订单日期
	
	@NotNull(message = "商户号不能为空")	
	@Pattern(message="商户号格式不正确")
	private String merId;	//变长8	商户号
	
	@NotNull(message = "金额不能为空")		
	@Pattern(message = "金额格式不正确")
	private String amount;	//变长13	金额
	
	@NotNull(message = "分账类型不能为空")		
	@Pattern(message = "分账类型格式不正确")
	private String splitType;	//定长2	分账类型
	
	@NotNull(message = "分账类别不能为空")		
	@Pattern(message = "分账类别格式不正确")
	private String splitCategory;	//定长1	分账类别
	
	@NotNull(message = "业务产品号不能为空")		
	@Pattern(message = "业务产品号格式不正确")
	private String bProductId;	//变长8	业务产品号
	
	@NotNull(message = "支付产品不能为空")		
	@Pattern(message = "支付产品格式不正确")
	private String pProductId;	//定长8	产品号
		
	@Pattern(message = "通知地址格式不正确")
	private String notifyUrl;	//变长128	后台通知地址
	
	@Pattern(message = "备注信息格式不正确")
	private String remark;	//变长64	备注信息
	
    @Valid
	private  List<SplitDataBusi> splitData;		//分账数据

    private String comAmt;
    
	public String getComAmt() {
		return comAmt;
	}

	public void setComAmt(String comAmt) {
		this.comAmt = comAmt;
	}

	public String getOrderId() {
		return orderId;
	}

	public void setOrderId(String orderId) {
		this.orderId = orderId;
	}

	public String getOrderDate() {
		return orderDate;
	}

	public void setOrderDate(String orderDate) {
		this.orderDate = orderDate;
	}

	public String getOriOrderId() {
		return oriOrderId;
	}

	public void setOriOrderId(String oriOrderId) {
		this.oriOrderId = oriOrderId;
	}

	public String getOriOrderDate() {
		return oriOrderDate;
	}

	public void setOriOrderDate(String oriOrderDate) {
		this.oriOrderDate = oriOrderDate;
	}

	public String getMerId() {
		return merId;
	}

	public void setMerId(String merId) {
		this.merId = merId;
	}

	public String getAmount() {
		return amount;
	}

	public void setAmount(String amount) {
		this.amount = amount;
	}


	public String getSplitType() {
		return splitType;
	}

	public void setSplitType(String splitType) {
		this.splitType = splitType;
	}

	public String getSplitCategory() {
		return splitCategory;
	}

	public void setSplitCategory(String splitCategory) {
		this.splitCategory = splitCategory;
	}

	public String getbProductId() {
		return bProductId;
	}

	public void setbProductId(String bProductId) {
		this.bProductId = bProductId;
	}

	public String getpProductId() {
		return pProductId;
	}

	public void setpProductId(String pProductId) {
		this.pProductId = pProductId;
	}

	public String getNotifyUrl() {
		return notifyUrl;
	}

	public void setNotifyUrl(String notifyUrl) {
		this.notifyUrl = notifyUrl;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public List<SplitDataBusi> getSplitData() {
		return splitData;
	}

	public void setSplitData(List<SplitDataBusi> splitData) {
		this.splitData = splitData;
	}

	@Override
	public String toString() {
		return "TransSplitBusiReq [rpid=" +rpid +", orderId=" + orderId + ", orderDate=" + orderDate + ", oriOrderId=" + oriOrderId
				+ ", oriOrderDate=" + oriOrderDate + ", merId=" + merId + ", amount=" + amount 
				+ ", splitType=" + splitType + ", splitCategory=" + splitCategory + ", bProductId=" + bProductId
				+ ", pProductId=" + pProductId + ", notifyUrl=" + notifyUrl + ", remark=" + remark + ", splitData="
				+ splitData + "]";
	}

}
